package com.hb.util;

import org.apache.shiro.crypto.hash.Md5Hash;
import org.apache.shiro.crypto.hash.SimpleHash;

/**
 * 用户密码加密工具类
 *
 * @author zhaojk
 */
public class CredentialUtil {
    /**
     * 加密算法
     */
    public final static String HASH_ALGORITHM_MD5 = "MD5";
    /**
     * 加密循环次数
     */
    public final static int HASH_ITERATIONS = 128;

    /**
     * md5加密
     *
     * @param password
     *
     * @return
     */
    public static String md5(String password) {
        return md5(password, null);
    }

    /**
     * MD5加密
     *
     * @param password 被加密的密码字符串
     * @param salt     盐值, 相同的密码不同的盐值加密结果不同
     *
     * @return
     */
    public static String md5(String password, String salt) {
        return new SimpleHash(HASH_ALGORITHM_MD5, password, salt == null ? null : new Md5Hash(salt), HASH_ITERATIONS).toString();
    }

}
